

#ifndef FILEUTILS_H
#define FILEUTILS_H

#include <string>
#include <vector>
#include "../ManageStu.h"
#include "../context/UserContext.h"
/*************************************************
  * 描述：
  * 文件操作工具类，实现文件的读写、日志记录和索引构建等功能
  * File：FileUtils.h
  * Author：name@mozihealthcare.cn
  * Date：2025-07-18
  * Update：
  * ************************************************/

class FileUtils {

public:
    // 用来读取文件中所有的学生对象
    void static loadAllStus(vector<unique_ptr<Student>> &arr, unordered_set<int> &m_set);
    // 用来将所有的学生对象写入文件中
    void static saveAllStus(const vector<unique_ptr<Student>> &arr);
    // 用来记录操作日志和错误日志
    void static logAccess(const string &info, bool type,const UserContext::userInfo& user) ;


    // 构建数据索引
    // struct LineIndex {
    //     long long offset;
    //     int line_number;
    // };
    // void static build_index(const string& data_file, const string& index_file);
    // vector<LineIndex> static read_indices_in_range(const string& index_file,int start_line,int end_line);
    //
    // static vector<Student*> read_line(const string& data_file, const string& index_file, int target_line,int count);
};



#endif //FILEUTILS_H
